package com.ruoyi.etp.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 服务记录对象 etp_service_quality_records
 * 
 * @author xmj
 * @date 2025-09-12
 */
public class EtpServiceQualityRecords extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 服务发生时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "服务发生时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date serviceTime;

    /** 客户手机号 */
    @Excel(name = "客户手机号")
    private String customerPhone;

    /** 客户姓名 */
    @Excel(name = "客户姓名")
    private String customerName;

    /** 服务场景 */
    @Excel(name = "服务场景")
    private String serviceScene;

    /** 标签，多条用逗号隔开（如：分析成功,有效语音,优秀语音） */
    @Excel(name = "标签，多条用逗号隔开", readConverterExp = "如=：分析成功,有效语音,优秀语音")
    private String tags;

    /** 服务员工ID */
    @Excel(name = "服务员工ID")
    private Long userId;

    /** 所属组织ID */
    @Excel(name = "所属组织ID")
    private Long deptId;

    /** 服务时长（格式如：00:05:30） */
    @Excel(name = "服务时长", readConverterExp = "格=式如：00:05:30")
    private String serviceDuration;

    /** 质检评分（0-100） */
    @Excel(name = "质检评分", readConverterExp = "0=-100")
    private Long qualityScore;

    /** 风险等级（0-无风险，1-低风险，2-中风险，3-高风险） */
    @Excel(name = "风险等级", readConverterExp = "0=-无风险，1-低风险，2-中风险，3-高风险")
    private Long riskLevel;

    /** 是否存在风险（0-否，1-是） */
    @Excel(name = "是否存在风险", readConverterExp = "0=-否，1-是")
    private Long hasRisk;

    /** 是否有效语音（0-否，1-是） */
    @Excel(name = "是否有效语音", readConverterExp = "0=-否，1-是")
    private Long isEffective;

    /** 是否优秀语音（0-否，1-是） */
    @Excel(name = "是否优秀语音", readConverterExp = "0=-否，1-是")
    private Long isExcellent;

    /** 创建人 */
    @Excel(name = "创建人")
    private String createdBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdTime;

    /** 修改人 */
    @Excel(name = "修改人")
    private String updatedBy;

    /** 修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedTime;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setServiceTime(Date serviceTime) 
    {
        this.serviceTime = serviceTime;
    }

    public Date getServiceTime() 
    {
        return serviceTime;
    }

    public void setCustomerPhone(String customerPhone) 
    {
        this.customerPhone = customerPhone;
    }

    public String getCustomerPhone() 
    {
        return customerPhone;
    }

    public void setCustomerName(String customerName) 
    {
        this.customerName = customerName;
    }

    public String getCustomerName() 
    {
        return customerName;
    }

    public void setServiceScene(String serviceScene) 
    {
        this.serviceScene = serviceScene;
    }

    public String getServiceScene() 
    {
        return serviceScene;
    }

    public void setTags(String tags) 
    {
        this.tags = tags;
    }

    public String getTags() 
    {
        return tags;
    }

    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }

    public void setDeptId(Long deptId) 
    {
        this.deptId = deptId;
    }

    public Long getDeptId() 
    {
        return deptId;
    }

    public void setServiceDuration(String serviceDuration) 
    {
        this.serviceDuration = serviceDuration;
    }

    public String getServiceDuration() 
    {
        return serviceDuration;
    }

    public void setQualityScore(Long qualityScore) 
    {
        this.qualityScore = qualityScore;
    }

    public Long getQualityScore() 
    {
        return qualityScore;
    }

    public void setRiskLevel(Long riskLevel) 
    {
        this.riskLevel = riskLevel;
    }

    public Long getRiskLevel() 
    {
        return riskLevel;
    }

    public void setHasRisk(Long hasRisk) 
    {
        this.hasRisk = hasRisk;
    }

    public Long getHasRisk() 
    {
        return hasRisk;
    }

    public void setIsEffective(Long isEffective) 
    {
        this.isEffective = isEffective;
    }

    public Long getIsEffective() 
    {
        return isEffective;
    }

    public void setIsExcellent(Long isExcellent) 
    {
        this.isExcellent = isExcellent;
    }

    public Long getIsExcellent() 
    {
        return isExcellent;
    }

    public void setCreatedBy(String createdBy) 
    {
        this.createdBy = createdBy;
    }

    public String getCreatedBy() 
    {
        return createdBy;
    }

    public void setCreatedTime(Date createdTime) 
    {
        this.createdTime = createdTime;
    }

    public Date getCreatedTime() 
    {
        return createdTime;
    }

    public void setUpdatedBy(String updatedBy) 
    {
        this.updatedBy = updatedBy;
    }

    public String getUpdatedBy() 
    {
        return updatedBy;
    }

    public void setUpdatedTime(Date updatedTime) 
    {
        this.updatedTime = updatedTime;
    }

    public Date getUpdatedTime() 
    {
        return updatedTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("serviceTime", getServiceTime())
            .append("customerPhone", getCustomerPhone())
            .append("customerName", getCustomerName())
            .append("serviceScene", getServiceScene())
            .append("tags", getTags())
            .append("userId", getUserId())
            .append("deptId", getDeptId())
            .append("serviceDuration", getServiceDuration())
            .append("qualityScore", getQualityScore())
            .append("riskLevel", getRiskLevel())
            .append("hasRisk", getHasRisk())
            .append("isEffective", getIsEffective())
            .append("isExcellent", getIsExcellent())
            .append("createdBy", getCreatedBy())
            .append("createdTime", getCreatedTime())
            .append("updatedBy", getUpdatedBy())
            .append("updatedTime", getUpdatedTime())
            .toString();
    }
}
